package com.enhe.gck.pojo;
 import java.util.Date;
 import java.lang.String;
 import java.lang.Integer;
 import java.math.BigDecimal;
 import java.lang.Long;
 import java.lang.Float;
 import java.lang.Double;

 import com.enhe.gck.CarbonRelationType;
 import com.kuangkie.carbon.record.Updatable;
 import com.kuangkie.carbon.record.annotation.Attribute;
 import com.kuangkie.carbon.record.annotation.CarbonRecord;
 import com.kuangkie.carbon.record.annotation.RecordCode;
 import com.alibaba.fastjson.annotation.JSONField;
 import com.kuangkie.carbon.record.annotation.Relation;
 import com.kuangkie.carbon.uid.model.UidManager;
 import lombok.Data;

// 充值记录
@Data
@CarbonRecord("hwane16698")
public class Recharge implements Updatable{
    @JSONField(name="唯一编码")
    @RecordCode
    private Long id = UidManager.getLongUID();

    // 单号
    @JSONField(name="单号")
    @Attribute("hwan16700")
    private String order;

    // 充值金额
    @JSONField(name="充值金额")
    @Attribute("hwan16703")
    private Double rechargeAmount;

    // 名称
    @JSONField(name="名称")
    @Attribute("hwan16704")
    private String name;

    // 充值类型
    @JSONField(name="充值类型")
    @Attribute("hwan16705")
    private String type;

    // 实际扣款
    @JSONField(name="实际扣款")
    @Attribute("hwan16801")
    private Double actualDeduction;

    // 可用余额
    @JSONField(name="可用余额")
    @Attribute("hwan16812")
    private Double availableBalance;

    // 币种
    @JSONField(name="币种")
    @Attribute("hwan16816")
    private String currency;

    // 当前币种金额
    @JSONField(name="当前币种金额")
    @Attribute("hwan16818")
    private Double moneyCurrency;

    // 计算汇率
    @JSONField(name="计算汇率")
    @Attribute("hwan16826")
    private BigDecimal exchange;
    @JSONField(name="计算汇率f")
    @Attribute("hwan25796")
    private BigDecimal exchangef;


    @JSONField(name="作废")
    @Attribute("hwan19865")
    private Boolean isCancel;

    @JSONField(name="是否同步")
    @Attribute("hwan19141")
    private Boolean flagSync;

    @JSONField(name="作废同步")
    @Attribute("hwan19141")
    private Boolean flagSyncCancel;

    @JSONField(name="退款")
    @Attribute("hwan25581")
    private BigDecimal moneyRefund;
    @JSONField(name = "命令")
    @Attribute("hwan25584")
    private String command;
    @JSONField(name="退款")
    @Attribute("hwan25585")
    private BigDecimal tmd;
    @JSONField(name="实际消除")
    @Attribute("hwan25772")
    private BigDecimal moneyXc;


    @Relation(CarbonRelationType.RR_充值记录_属于合同单价_合同单价)
    private Univalence univalence;
    @Relation(CarbonRelationType.RR_充值记录_属于合同单价_合同单价)
    private Long univalenceId;

    @Relation(CarbonRelationType.RR_充值记录_客户名称_客户管理)
    private Customer customer;
    @Relation(CarbonRelationType.RR_充值记录_客户名称_客户管理)
    private Long customerId;

    @Relation(CarbonRelationType.RR_充值记录_银行账户_银行账户)
    private Bank bank;
    @Relation(CarbonRelationType.RR_充值记录_银行账户_银行账户)
    private Long bankId;
    @Override
    public String getRecordCode() {
        return this.id==null ? null : this.id.toString();
    }
}